package com.javaBasic;

public class InterviewString {
    public static void main(String[] args) {
        String s1 = "hi";
        String s2 = "hi";
        String s3 = new String(s1);
        System.out.println(s1 == s2);
        System.out.println(s1 == s3);

        String s4 = "hi,"+"Linda";
        s4 += "!";
        String s5 = s4 + "!!";
        System.out.println(s4);
        System.out.println(s5);

        //substring()字符串截取
        String str = "abcdef";
        System.out.println(str.substring(2));//从下标为2的开始截取到最后，包含开始下标
        System.out.println(str.substring(2,4));//从下标为2的开始截取到下标为4的，包含开始下标不包含结束下标

        System.out.println(str.length());
        String[] cs = str.split("c");
        for (String c : cs) {
            System.out.println(c);
        }

        //字符串格式化
        String str2 = String.format("我叫%s,今年%d岁,喜欢%s","老王",30,"看书");
        System.out.println(str2);

        String ss1 = "Hi,laowang";
        String ss2 = "hi,laowang";
        System.out.println(ss1.equals(ss2)); // false
        System.out.println(ss1.equalsIgnoreCase(ss2)); // true,忽略大小写比较

        //String、StringBuffer、StringBuilder
        //
        //字符串相关类型主要有这三种：String、StringBuffer、StringBuilder，其中 StringBuffer、StringBuilder
        //都是可以变的字符串类型，StringBuffer 在字符串拼接时使用 synchronized 来保障线程安全，因此在多线程字符串拼接中推荐使用StringBuffer
        //StringBuilder 的使用方法和 StringBuffer 一样，它们都继承于 AbstractStringBuilder。

        StringBuffer buffer = new StringBuffer("lao");
        StringBuffer append = buffer.append("wang");//添加字符串到尾部
        System.out.println(append);

        // 插入字符串到到当前字符串下标的位置
        System.out.println(append.insert(0,"hi,"));

        // 修改字符中某个下标的值
        append.setCharAt(0, 'H');
        System.out.println(append);


    }
}
